import java.util.Scanner;

public class demo {

//    收件人列表△△
//NowCoder每天要给许多客户写电子邮件。正如你所知，如果一封邮件中包含多个收件人，收件人姓名之间会用一个逗号和空格隔开；
//如果收件人姓名也包含空格或逗号，则姓名需要用双引号包含。现在给你一组收件人姓名，请你帮他生成相应的收件人列表。
//    注意格式

    //    输入
//3
//Joe
//Quan, William
//Letendre,Bruce
//2
//Leon
//Kewell
//    输出
//Joe, "Quan, William", "Letendre,Bruce"
//Leon, Kewell
    public static void main1(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            // 接收第一行，需要将改行之后的回车接收掉
            // 该行代码非常关键：将数字所在行之后所有的内容接收完
            scanner.nextLine();
            for (int i=0; i<n; i++) {
                String str = scanner.nextLine();
                // 当拿到一个名字的时候，该名字中包含空格或者逗号，拼接""输出
                // 否则直接输出
                if (str.contains(",") || str.contains(" ")) {
                    System.out.print("\"" + str + "\"");
                }else {
                    System.out.print(str);
                }
                // 名字和名字之间使用", "隔开           这里是逗号＋空格
                // 最后一个名字之后没有
                if (i != n) {
                    System.out.print(", ");
                }
            }
        }
    }





    //    养兔子
//一只成熟的兔子每天能产下一胎兔子。每只小兔子的成熟期是一天。 某人领养了一只小兔子，请问第N天以后，他将会得到多少只兔子
//    输入描述:
//测试数据包括多组，每组一行，为整数n(1≤n≤90)。
//    输出描述:
//对应输出第n天有几只兔子(假设没有兔子死亡现象)。
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long[] arr = new long[91];
        arr[0] = 1;
        arr[1] = 1;
        for (int i=2; i<91; i++) {
            arr[i] = arr[i-1] + arr[i-2];
        }
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            System.out.println(arr[n]);
        }
    }
}
